<?php

class Application_Form_Inspersonafisica extends Zend_Form
{
    private $_id_admin = '';

    public function __construct(array $params = array())
    {
        $this->_id_admin = $params['id_admin'];
        parent::__construct();
    }
    
    public function init()
    {
        
        //import the model
        require_once APPLICATION_PATH . '/models/Db/Lib_db.php';
        $handle_lib = new Lib_db();
        
        
        /* Form Elements & Other Definitions Here ... */
        $this->setName("inserisci_persona");
        $this->setMethod('post');

        
        //nome
        $this->addElement('text', 'nome', array(
            'filters'    => array('StringTrim'),
            'validators' => array(
                array('StringLength', true, array(0, 255)),
            ),
            'required'   => true,
            'label'      => 'Nome: *',
        ));
        
        //cognome
        $this->addElement('text', 'cognome', array(
            'filters'    => array('StringTrim'),
            'validators' => array(
                array('StringLength', true, array(0, 255)),
            ),
            'required'   => true,
            'label'      => 'Cognome: *',
        ));
        
   
        //echo "cwd: " . get_include_path();
        $data = new Zend_Dojo_Form_Element_DateTextBox('data_nascita');
        $data->setLabel('Data di nascita: *'); 
        $data->setRequired(true);
        $data->addPrefixPath('CV_Validate', 'CV/Validate', 'validate');
        $data->addValidator('isValidDate');
        $this->addElement($data);
        
               
        
        //id_lib_comune_nascita 
        $com = $this->createElement('text','id_nascita'); 
        $com ->setLabel('Comune di nascita: *');
        $com->setRequired(true);
        $com->autocomplete = 'off';
        $this->addElement($com);
        
        $com->setDecorators(array(
            'ViewHelper',
            'Description',
            'Errors',
            array('HtmlTag', array('tag' => 'dd')),
            array('Label', array('tag' => 'dt')),
            array('Description', array('escape'=>false,'tag'=>'span'))
        ));   
        $com->setDescription((html_entity_decode('<div class="result" id="results-nascita"></div>')));

        //id del comune selezionato dall'utente
        $id_comune1 = $this->createElement('hidden', 'id_lib_comune_nascita');
        $id_comune1->removeDecorator('label');
        $id_comune1->setRequired(true);
        $id_comune1->autocomplete = 'off';
        $this->addElement($id_comune1);

        //id_lib_comune_residenza 
        $com_r = $this->createElement('text','id_residenza'); 
        $com_r ->setLabel('Comune di residenza: ');
        $com_r->setRequired(false);     
        $com_r->autocomplete = 'off';        
        $this->addElement($com_r);
        
        $com_r->setDecorators(array(
            'ViewHelper',
            'Description',
            'Errors',
            array('HtmlTag', array('tag' => 'dd')),
            array('Label', array('tag' => 'dt')),
            array('Description', array('escape'=>false,'tag'=>'span'))
        ));   
        $com_r->setDescription((html_entity_decode('<div class="result" id="results-residenza"></div>')));

        //indirizzo residenza
        $this->addElement('text', 'indirizzo_residenza', array(
            'filters'    => array('StringTrim'),
            'validators' => array(
                array('StringLength', true, array(0, 255)),
            ),
            'required'   => false,
            'label'      => 'Indirizzo residenza:',
        ));         
        
        //id del comune selezionato dall'utente
        $id_comune2 = $this->createElement('hidden', 'id_lib_comune_residenza');
        $id_comune2->removeDecorator('label');
        $id_comune2->setRequired(false);
        $this->addElement($id_comune2);        

        
        //cap_residenza
        $this->addElement('text', 'cap_residenza', array(
            'filters'    => array('StringTrim'),
            'validators' => array(
                array('StringLength', true, array(0, 10)),
            ),
            'required'   => false,
            'label'      => 'CAP residenza:',
        ));         
        
        /*
        //id_lib_comune_domicilio        
        $com_d = $this->createElement('select','id_lib_comune_domicilio'); 
        $com_d ->setLabel('Domicilio:');
        foreach ($comuni as $comune) {
            //$com_d->addMultiOptions(array($comune['id_lib_comune']=>$comune['descrizione']));
        }
        $com_d->setRequired(false);
        $this->addElement($com_d); 
        */
        
        
        //id_lib_comune_domicilio 
        $com_d = $this->createElement('text','id_domicilio'); 
        $com_d ->setLabel('Comune di domicilio: (se diverso da residenza)');
        $com_d->setRequired(false);      
        $this->addElement($com_d);
        
        $com_d->setDecorators(array(
            'ViewHelper',
            'Description',
            'Errors',
            array('HtmlTag', array('tag' => 'dd')),
            array('Label', array('tag' => 'dt')),
            array('Description', array('escape'=>false,'tag'=>'span'))
        ));   
        $com_d->setDescription((html_entity_decode('<div class="result" id="results-domicilio"></div>')));

        //id del comune selezionato dall'utente
        $id_comune3 = $this->createElement('hidden', 'id_lib_comune_domicilio');
        $id_comune3->removeDecorator('label');
        $id_comune3->setRequired(true);
        $this->addElement($id_comune3);     
        
        
        
        //indirizzo domicilio
        $this->addElement('text', 'indirizzo_domicilio', array(
            'filters'    => array('StringTrim'),
            'validators' => array(
                array('StringLength', true, array(0, 255)),
            ),
            'required'   => false,
            'label'      => 'Indirizzo domicilio:',
        ));         
  
  
        
        //cap_domicilio
        $this->addElement('text', 'cap_domicilio', array(
            'filters'    => array('StringTrim'),
            'validators' => array(
                array('StringLength', true, array(0, 10)),
            ),
            'required'   => false,
            'label'      => 'CAP domicilio:',
        ));         
        
        //cf
        $cf = $this->createElement('text','cf');
        $cf->setLabel('Codice Fiscale: *');
        $cf->setRequired(true);
        $cf->addPrefixPath('CV_Validate', 'CV/Validate/', 'validate');
        $cf->addValidator('isValidCF');
        $this->addElement($cf);

            
        //sesso
        $sesso_button = $this->createElement('radio','sesso');
        $sesso_button->setLabel('Sesso: *');
        $sesso_button->addMultiOption('M','Maschio');
        $sesso_button->addMultiOption('F','Femmina');
        $sesso_button->setRequired(true);
        $this->addElement($sesso_button);
        
        //cittadinanza italiana
        $citt_button = $this->createElement('radio','cittadinanza_italiana');
        $citt_button->setLabel('Cittadinanza italiana: *');
        $citt_button->addMultiOption('1','Si');
        $citt_button->addMultiOption('0','No');
        $citt_button->setValue("1");
        $citt_button->setRequired(true);
        $this->addElement($citt_button);
        
        //id_lib_nazione
        require_once APPLICATION_PATH . '/models/Db/Lib_db.php';
        $handle_lib = new Lib_db();
        
        $nazioni = $handle_lib->getLibNazioni();        
        $naz = $this->createElement('select','id_lib_nazione'); 
        $naz ->setLabel('Nazione:');
        foreach ($nazioni as $nazione) {
            $naz->addMultiOptions(array($nazione['id_lib_nazione']=>$nazione['descrizione']));
        }
        $this->addElement($naz);        
    
        //titolo
        $this->addElement('text', 'titolo', array(
            'filters'    => array('StringTrim'),
            'validators' => array(
                array('StringLength', false, array(0, 10)),
            ),
            'required'   => false,
            'label'      => 'Titolo:',
        ));            
         
        // note
        $this->addElement('textarea', 'note', array(
            'filters'    => array('StringTrim'),
            'label'      => 'Note:',
            'required'   => false,
            'attribs'=> array(
                'COLS'=>'40',
                'ROWS'=> '10'
                ),            
            'validators' => array(
                array('validator' => 'StringLength', 'options' => array(0, 1000))
                )
        )); 
        
                
        //id dell'utente che ha creato e modificato questa anagrafe
        $this->addElement('hidden', 'id_admin');        
        
        $this->addElement('submit', 'inserisci', array(
            'required' => false,
            'ignore'   => true,
            'label'    => 'Inserisci',
        ));
        
        // And finally add some CSRF protection
        $this->addElement('hash', 'csrf', array(
            'ignore' => true,
        ));
            
    }


}

